package top.jacktgq.imooc.quickStart;

import io.netty.channel.Channel;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
import io.netty.handler.codec.http.HttpServerCodec;
/**
 * 
 * @Title: HelloInitializer.java 
 * @Package top.jacktgq.imooc 
 * @Description: 初始化器，channel注册后，会执行里面相应的初始化方法
 * @author CandyWall   
 * @date 2021年2月4日 下午7:03:03 
 * @version V1.0
 */
public class HelloInitializer extends ChannelInitializer<Channel> {
    @Override
    protected void initChannel(Channel ch) throws Exception {
        // 通过SocketChannel去获得对应的管道
        ChannelPipeline pipeline = ch.pipeline();
        // 通过管道，添加Handler
        // HttpServerCodec是由Netty自己提供的助手类，可以理解成拦截器
        // 当请求当服务端，我们需要做解码，响应到客户端做编码
        pipeline.addLast("HttpServerCodec", new HttpServerCodec());
        
        // 添加一个自定义的Handler，返回 Hello Netty
        pipeline.addLast("CustomHandler", new CustomHandler());
    }
}
